package org.jwcloud.project.module.zx.info.service;

import java.util.List;
import java.util.Map;

import org.jwcloud.project.module.zx.db.domain.RtaItemInfo;
import org.jwcloud.project.module.zx.db.domain.RtaItemSzCol;
import org.jwcloud.project.module.zx.db.domain.RtaItemSzInfo;
import org.jwcloud.project.module.zx.db.domain.RtaProjectInfo;
import org.jwcloud.project.module.zx.db.domain.RtaTaskItemRel;

import com.jw.mid.mm.comm.common.pagination.ListSlice;
import com.jw.mid.mm.comm.common.service.CrudService;

public interface InfoService extends CrudService<Object, Long> {

	/**
	 * 查询代办任务列表
	 * 
	 * @param prjid
	 * @return
	 */
	public TodoListTree todoList(Integer prjid, Map<String, Object> user);

	/**
	 * 查询代办任务列表
	 * 
	 * @param prjid
	 * @return
	 */
	public TodoListTree todoListForTask(Integer prjid, Integer taskId);

	/**
	 * 查询任务对应的要件
	 * 
	 * @param taskId
	 * @return
	 */

	// public List<RtaItemSzInfo> searchItemList(Integer taskId);
	/**
	 * 查询任务对应的要件
	 * 
	 * @param taskId
	 * @return
	 */

	public List<RtaItemSzInfo> searchItemListByTaskId(Integer taskId);

	/**
	 * 查询要件对应的项目
	 * 
	 * @param taskId
	 * @return
	 */

	public List<RtaItemSzCol> searchItemColList(Integer itemId);

	/**
	 * 保存上报的要件数据
	 * 
	 * @param prjId
	 * @param taskId
	 * @param info
	 */

	public void saveItemInfo(Integer prjId, Integer workId, Integer taskId, Integer relItemSzId,
			Map<String, Object> info, Map<String, Object> userInfo);

	/**
	 * 完成任务
	 * 
	 * @param prjId 项目编号
	 * @param workId 工作编号
	 * @param taskId 任务编号
	 */
	public void finishTask(Integer prjId, Integer workId, Integer taskId);

	/**
	 * 提交任务审批
	 * 
	 * @param prjId
	 * @param taskId
	 */
	public void commitTask(Integer prjId, Integer workId, Integer taskId, Map<String, String> userInfo);

	/**
	 * 修改上报的要件数据
	 * 
	 * @param infoId
	 */

	public void updateItemInfo(Integer prjId, String infoId, Map<String, Object> info);

	/**
	 * 修改替代说明
	 * 
	 * @param infoId
	 */

	public void repleaseItemInfo(Integer prjId, String infoId, String msg);

	/**
	 * 修改上报的要件数据
	 * 
	 * @param prjId
	 * @param taskId
	 * @param info
	 */

	public void delItemInfo(Integer prjId, String infoId);

	/**
	 * 查询上报的要件数据
	 * 
	 * @param prjId
	 * @param taskId
	 * @param info
	 */

	public List searchItemInfo(Integer prjId, Integer workId, Integer taskId, Integer itemId);

}
